﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoBD;
using Entidades;
using System.Net.Mail;
namespace PresentacionEscritorio
{
    public partial class frmRecuperarContraseña : Form
    {
        public frmRecuperarContraseña()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (!validar())
            {
                Usuario oU = Usuarios.obtenerUsurio(txtNombreUsr.Text);
                if (oU != null)
                {
                    if (oU.legajoEmpleado != 0)
                    {
                        Empleado oE = Empleados.obtenerEmpleadoPorLegajo(oU.legajoEmpleado);
                        string mail = oE.Mail;
                        bool res = EnviarEmail(mail, oU.Nombre, oU.Contraseña);
                        if (res)
                        {
                            MessageBox.Show("Mensaje enviado con exito", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
   

                        }
                        else
                        {

                            MessageBox.Show("Error al enviar el mensaje", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            
                        }

                    }
                    if (oU.legajoMedico != 0)
                    {
                        Medico oM = Medicos.obtenerMedicoPorUsuario(oU.CodUsuario);
                        string mail = oM.Mail;
                        bool res = EnviarEmail(mail, oU.Nombre, oU.Contraseña);
                        if (res)
                        {
                            MessageBox.Show("Mensaje enviado con exito", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);

                     

                        }
                        else
                        {
                            MessageBox.Show("Error al enviar el mensaje", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            this.Close();
                        }
                    }
                }
            }

        }
        private bool validar()
        {
            bool val = false;
            string error = "";
            if (string.IsNullOrEmpty(txtNombreUsr.Text))
            {
                val = true;
                error = "Debe ingresar el nombre de usuario";
            }
            if (error != "")
            {
                MessageBox.Show(error, "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return val;
        }
        private bool EnviarEmail(string mail, string usr, string contra)
        {

            MailMessage msg = new MailMessage();

            msg.To.Add(mail);

            msg.From = new MailAddress("msrobotony@gmail.com", "Tony", System.Text.Encoding.UTF8);

            msg.Subject = "Recuperacion de contraseña";

            msg.SubjectEncoding = System.Text.Encoding.UTF8;

            msg.Body = "Hola " + usr + " su contraseña es: " + contra;

            msg.BodyEncoding = System.Text.Encoding.UTF8;

            msg.IsBodyHtml = true; //Si vas a enviar un correo con contenido html entonces cambia el valor a true
            //Aquí es donde se hace lo especial

            SmtpClient client = new SmtpClient();

            client.Credentials = new System.Net.NetworkCredential("msrobotony@gmail.com", "www.cualquiera.c");

            client.Port = 587;

            client.Host = "smtp.gmail.com";//Este es el smtp valido para Gmail

            client.EnableSsl = true; //Esto es para que vaya a través de SSL que es obligatorio con GMail

            try
            {
                client.Send(msg);

                return true;
            }

            catch (Exception)
            {
                return false;
            }

        }

        private void frmRecuperarContraseña_Load(object sender, EventArgs e)
        {

        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
